/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package be.cultuurschuur.Controllers;

import be.cultuurschuur.entity.*;
import be.cultuurschuur.interfaces.*;
import be.cultuurschuur.services.*;
import java.io.*;
import java.util.*;
import javax.enterprise.context.*;
import javax.faces.context.FacesContext;
import javax.inject.*;

/**
 *
 * @author Webbie
 */
@Named
@RequestScoped
public class BoekingController implements Serializable
{
    @Inject
    private BoekingInterface boekingInterface;
    
    private int klant;
    private int reis;
    private int betaalwijze;
    private int totaalprijs;
    private int aantalDeelnemers;
    private String boodschap;

    public String getBoodschap() {
        return boodschap;
    }

    public void setBoodschap(String boodschap) {
        this.boodschap = boodschap;
    }
    
    public int getKlant() {
        return klant;
    }

    public void setKlant(int klant) {
        this.klant = klant;
    }

    public int getReis() {
        return reis;
    }

    public void setReis(int reis) {
        this.reis = reis;
    }

    public int getBetaalwijze() {
        return betaalwijze;
    }

    public void setBetaalwijze(int betaalwijze) {
        this.betaalwijze = betaalwijze;
    }

    public int getTotaalprijs() {
        return totaalprijs;
    }

    public void setTotaalprijs(int totaalprijs) {
        this.totaalprijs = totaalprijs;
    }

    public int getAantalDeelnemers() {
        return aantalDeelnemers;
    }

    public void setAantalDeelnemers(int aantalDeelnemers) {
        this.aantalDeelnemers = aantalDeelnemers;
    }

    public String insertBoeking()
    { 
        FacesContext context = FacesContext.getCurrentInstance();
        Klant ingelogdeKlant = new Klant();
        int reisId = reis;
        
        if(context != null)
        {
            Map<String, Object> sessionMap = context.getExternalContext().getSessionMap();
            
            if(sessionMap != null)
            {
               ingelogdeKlant =  (Klant) sessionMap.get("klant");
               reisId = Integer.parseInt(sessionMap.get("reisId").toString());
            }
        }
        
        BLBoeking blBoeking = new BLBoeking();
        blBoeking.setAantalDeelnemers(aantalDeelnemers);
        blBoeking.setBetaalwijze(betaalwijze);
        blBoeking.setKlant(Integer.parseInt(ingelogdeKlant.getId().toString()));
        blBoeking.setReis(reisId);
        
        boodschap = "Uw reis is geboekt.";
        
        blBoeking.insertBoeking();
        
        return "overzicht.xhtml";
    }
    
    public List<Boeking> overzichtBoekingenKlant() {
        FacesContext context = FacesContext.getCurrentInstance();
        Klant ingelogdeKlant = new Klant();
        
        if(context != null)
        {
            Map<String, Object> sessionMap = context.getExternalContext().getSessionMap();
            
            if(sessionMap != null)
            {
               ingelogdeKlant =  (Klant) sessionMap.get("klant");
            }
        }
        BLBoeking blBoeking = new BLBoeking();
        
        return blBoeking.getBoekingByKlant(Integer.parseInt(ingelogdeKlant.getId().toString()));
    }
    
    public List<Boeking> getBoekingen()
    {
        BLBoeking blBoeking = new BLBoeking();
        return blBoeking.getBoekingen();
    }
    
    public String boekReis(int reisId)  
    {
        FacesContext context = FacesContext.getCurrentInstance();
        context.getExternalContext().getSessionMap().put("reisId", reisId);
        
        return "boeking.xhtml";
    }
    public Boolean heeftKlantBoekingen()
    {
        List<Boeking> boekingen = overzichtBoekingenKlant();
        
        if(boekingen.size() > 0)
        {
            return true;
        }
        else 
        {
            return false;
        }
    }
}
